The present invention relates to systems and methods for transmitting multiple data streams over a channel.
In systems in which data is communicated between devices, two or more separate data streams may be communicated over the same communication channel using techniques such as time division multiplexing in which data packets from the different streams are transmitted at different times on the same channel. For example, the data packets of each data stream may be transmitted alternately with the data packets of one data stream being transmitted in the gaps between the data packets of the other data streams.
For example, coexistence between a synchronous data stream and an isochronous data stream on a channel involves fitting the isochronous traffic within the gaps in the synchronous traffic. A synchronous data stream is one in which the data packets are output at fixed regular intervals whereas an isochronous data stream is one where the packets are output at intervals such that a fixed time-averaged throughput is achieved. The difference between these types of data stream is essentially one of jitter. One example of a synchronous data stream is a Bluetooth SCO (Synchronous Connection Oriented) stream and one example of an isochronous data stream is an IEEE 802.11 VoIP (Voice over Internet Protocol) stream.
For a Bluetooth HV3 (High Quality Voice 3) SCO link there is only a 2.5 ms (millisecond) gap between data packets. This gap may be too small to transmit data packets of the VoIP stream without a high probability of collision between data packets of the two streams. For example, in an 802.11 VoIP link using G.711 over IP/UDP/RTP (Internet Protocol/User Datagram Protocol/Real-time Transport Protocol), the transmission of a voice packet and its acknowledgement takes at least 2.1 ms at a rate of 1 Mbps (megabits per second). This results in a 90% chance of collision with a Bluetooth HV3 SCO link.
Some existing systems address this problem using various signalling techniques. However, these techniques can significantly increase complexity of data transmission.